home *** CD-ROM | disk | FTP | other *** search
- /**************************************************************************
- * *
- * *
- * This code is copyright (c) 1992 *
- * Athena Design, Inc. *
- * and David Pollak *
- * *
- * ALL RIGHTS RESERVED *
- * *
- * *
- * *
- * *
- * *
- **************************************************************************/
-
- /**************************************************************************
-
- This header file defines the data structures and functions needed to
- impliment a function add-in.
-
- **************************************************************************/
-
- #import "MesaError.h"
- #import "objc/Object.h"
-
- typedef enum {numberAddInValue = 0,stringAddInValue,addressAddInValue,
- rangeAddInValue,errorAddInValue} AddInValueType;
-
- typedef struct _AddInValue {
- int type;
- union {
- char *string;
- double number;
- int error;
- struct {
- short row1,col1,row2,col2;
- void *cells;
- } ad;
- } values;
- } AddInValue;
-
- /*
-
- These functions allow you to push and pop items from the stack
-
- */
-
- int numberOfItemsOnStack(void *);
- void popValueFromStack(void *,AddInValue *);
- void pushNumberOnStack(void *,double);
- void pushStringOnStack(void *,const char *);
- void pushErrorOnStack(void *,int);
- void pushAddressOnStack(void *,short,short,void *);
- void pushRangeOnStack(void *,short,short,short,short,void *);
-
-
- /*
- These functions allow you to manipulate values
- */
-
- void initAddInValue(AddInValue *);
- void freeAddInValue(AddInValue *);
- double getAddInValueNumber(AddInValue *,int *);
- void getAddInValue(AddInValue *,AddInValue *,int *);
-
- /*
-
- This function allows you to get the value for a cell
-
- */
-
- int getValueForCell(void *,short,short,int *,AddInValue *);
-
- @interface MesaAddIn:Object
- {
- }
-
- + (char *)name;
- - execute:(void *)stack numberOfParams:(int)num sheet:(void *)sh;
- - beginRecalc;
- - endRecalc;
- @end
-